#ifndef _OSA_CFG
#define _OSA_CFG


//------------------------------------------------------------------------------
//#define OS_DISABLE_PRIORITY       // Switch priority mode OFF. Reduces ROM, RAM, increases speed.

#define OS_ENABLE_ALL               // Defined if need all (timers, counting semaphores, queues and ect.)
//#define OS_ENABLE_TIMER             // Defined if need task timers (OS_Delay, waiting with timeouts)
//#define OS_ENABLE_CSEM              // Defined if need counting semaphores
//#define OS_ENABLE_QMSG              // Defined if need queue of pointers to messages
//#define OS_ENABLE_QSMSG             // Defined if need queue of simple messages
//#define OS_QMSG_QSMSG_IDENTICAL	  // Defined if size of pointer to message = size of simple message. (Queue will use same functions)

//#define OS_ENABLE_CRITICAL_SECTION  // Defined if need critical sections
//#define OS_ENABLE_DTIMERS           // 

#define OS_ENABLE_INT_ALL           // Defined if need OS_IntXXX services
//#define OS_ENABLE_INT_CSEM          // Allows to work with conting semaphores within interrupts
//#define OS_ENABLE_INT_MSG           // Allows to work with pointers to messages within interrupts
//#define OS_ENABLE_INT_SMSG          // Allows to work with simple messages within interrupts
//#define OS_ENABLE_INT_QMSG          // Allows to work with queues within interrupts


#define OS_TASKS            3       // Number of tasks active at one time (number of descriptors in memory)
#define OS_BSEMS            16		// Number of binary semaphores
#define OS_STIMERS          2		// Number of static timers

#define OS_BANK_OS          0		// Allocation of system variables (temp, tasks, static timers, binary semaphores)
#define OS_BANK_TASKS       0		// Allocation of tasks
#define OS_BANK_BSEMS       0		// Allocation of binary semaphores
#define OS_BANK_STIMERS     0		// Allocation of statick timers


#define OS_CSEM_SIZE        1		// Size of counting semaphores

#define OS_TIMER_SIZE       2       // Size of all timers
//#define OS_TTIMER_SIZE      2		// Size of task timers
//#define OS_STIMER_SIZE      2       // Size of static timers
//#define OS_DTIMER_SIZE      2		// Size of dinamic timers




//______________________________________________________________________________
//------------------------------------------------------------------------------
// HERE YOU CAN DEFINE USER'S CONSTANTS (BYNARY SEMAPHORES ID, STATIC TIMERS ID)
//------------------------------------------------------------------------------


//------------------------------------------------------------------------------
// List of binary semaphores ID
enum OSA_BSEMS_ENUM 
{
	BS_RS_QUEUE_EMPTY,
	RS_QUEUE_FULL,
	RS_RCV_MSG,
	RS_NEW_MSG,
    BS_GO_READ_T,
	BS_BUTTON_1_REL,
	BS_BUTTON_1_FREE,
   
};



//------------------------------------------------------------------------------
// List of static timers ID
enum OSA_STIMERS_ENUM 
{
	OS_STATIC_TIMER_1
};



//------------------------------------------------------------------------------



#endif
